home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / comm / ftpdif10.zip / READ.ME < prev   
Text File  |  1997-07-09  |  18KB  |  327 lines

  1. FTPDIF FTP-index utility - finds differences in FTP directory listings
  2. Version 1.0, program written by Tim D. Kannel (TDK)
  3. Copyright(c) 1997  Tim Kannel
  4.  
  5. This program is freeware. It may be freely distributed as long as this
  6. READ.ME file is present.
  7. Date READ.ME last updated: 7/9/97
  8.  
  9. A listing of program options can be obtained with the '/?' command-line
  10. parameter. Options are also described in this file.
  11.  
  12. Contents:
  13.   - Description/Purpose (short)
  14.   - Disclaimer/License Agreement (Important legal information)
  15.   - Usage information (syntax, description of options)
  16.   - Description (long)
  17.   - Known Problems
  18.   - Contact Information (bug reporting,etc.)
  19.   - Future releases
  20.   - Other information (obtaining source code, other programs by TDK)
  21.  
  22.  
  23.   Description (short)
  24.   -----------
  25.     FTPDIF finds differences in FTP directory listings and writes
  26.   a new file that indicates those differences. Items that did not change
  27.   are also written to the new file (the output file is therefore a
  28.   complete listing, modified to indicate changes in the two versions).
  29.   This program is an alternative to newsgroup announcements and
  30.   mailing lists.
  31.  
  32.   Disclaimer / License Agreement - Please Read!
  33.   ------------------------------
  34.     The author of this program assumes NO liability for
  35.   use of this program, whether that be damage to your computer or
  36.   copyright issues regarding the reproduction of FTP index files.
  37.   Some (or all) FTP sites have reproduction copyrights on their directory
  38.   listings. Improper use of this program may violate those copyrights.
  39.   This program is intended to be for PERSONAL USE ONLY; the output from
  40.   this program should not posted in any way without permission from
  41.   the managers of the FTP site from which the index files were taken.
  42.   This program is supplied as-is. There are NO expressed or implied
  43.   warranties.
  44.     This program is not based on any other program. It was
  45.   developed indepently by the author.
  46.  
  47.   Usage Information (command-line syntax)
  48.   -----------------
  49.     FTPDIF [options] older-file newer-file [out-file]
  50.            older-file  name of file that is out-of-date
  51.            newer-file  name of file that is more recent
  52.            out-file    override default and set output file name
  53.     Options:   /?        display help information
  54.                /N        suppress 'NEW' messages in out-file
  55.                /F        suppress 'NOT FOUND' messages in out-file
  56.                /A        suppress all unnecessary output (options /N and /F)
  57.                /B        allow both sets of special characters
  58.                /Clist    change the special characters to those in 'list'
  59.  
  60.     File names may contain complete paths; wildcard characters in the
  61.     file names are not allowed.
  62.     Note that FTPDIF does not examine the file dates to see which one
  63.     is newer; it depends only on the order of the names on the command-line.
  64.     Options may be indicated with a dash or with a slash.
  65.     For example, both "/?" and "-?" (without the quotes) are
  66.     valid (and identical) options.
  67.  
  68.   Options described in a little more detail:
  69.     (The strings (without the quotes) "OLD","NEW", and "OUTPUT" refer to
  70.     the respective files given on the command-line. These are just
  71.     descriptive labels for describing the program in the rest of this file.)
  72.  
  73.   - Output file name('out-file'): specify the name for the new index file.
  74.     Default filename is derived from the newer index file and uses the
  75.     ".NEW" extension. Exampe: if the second command-line parameter
  76.     (the newer index file) is INDEX.TXT, the output file is INDEX.NEW.
  77.   - /N: Suppress "NEW" messages in OUTPUT (directories and filenames)
  78.   - /F: Suppress (directory)"NOT FOUND" messages in OUTPUT
  79.   - /A: Suppress both message types (this is equivalent to specifying
  80.     both the /N and /F options)
  81.   - /B: allow both sets of special characters (special characters are
  82.     written from OLD AND from NEW).
  83.   - /C change the list of special characters - the default set of special
  84.     characters is overwritten with the specified list, up to 10 characters
  85.     may be specified. Note that specifying an empty list will effectively
  86.     disable checking for special characters. The characters must be
  87.     immediately after the 'C'; no spaces are allowed.
  88.  
  89.   These should be more clear after reading the program description...
  90.  
  91.   Description (long)
  92.   -----------
  93.     Parts of this description may seem out of order, but everything will
  94.   hopefully be clear in the end (I'm a programmer, not a writer!)
  95.     FTPDIF takes two input files that are assumed to be ASCII index lists
  96.   of the files contained on an FTP site. (The indices should originate from
  97.   the same directory on the site). One input file should be a newly
  98.   obtained index (NEW) and one should be an older file that may have special
  99.   modifier-characters as described below (OLD). The directory listings
  100.   are processed one at a time, while looking for differences. A new output
  101.   file (OUTPUT) is created that is similar to NEW, except with the following
  102.   modifications:
  103.  
  104.      - files present in NEW but not present in OLD are added to OUTPUT
  105.        with the addition of the string "**NEW**" at the beginning of the
  106.        line (without the quotes).
  107.      - files present in OLD but not in NEW are assumed to have been deleted;
  108.        a message is written out indicating that these files weren't found
  109.        (this message will probably just be the filename, not the full
  110.        description). These messages will be grouped at the end of each
  111.        directory and will be of the form "** FILE NOT FOUND: filename **",
  112.        where filename is the name of the file.
  113.      - directories are indicated in a similar manner, except the strings
  114.        are "** DIRECTORY NOT FOUND: dirname **" (where dirname is the name
  115.        of the directory) and "** NEW DIRECTORY **". The former type of
  116.        directory messages are grouped at the beginning of OUTPUT before
  117.        the listings start.
  118.      - FTPDIF recognizes several special characters regarding the status
  119.        of files. These special characters are only interpreted as such if
  120.        they appear at the beginning of a line in front of a file name.
  121.        These characters are used to keep a record of interesting files to
  122.        be downloaded (or record those that already have been downloaded).
  123.        A description follows:
  124.  
  125.        @   get next time
  126.        %   get some time in the future
  127.        ^   already downloaded
  128.        ^-  downloaded and deleted (some of these may be marked as ^)
  129.        ?   unknown/undecided (possibly download)
  130.  
  131.        It is possibly to override this set of characters with the /C
  132.        command-line option. If this option is used, you will be prompted
  133.        for descriptions one at a time. This 'special-characters' feature
  134.        can be disabled by not listing any characters after the '/C'.
  135.  
  136.        These indicators are by no means required. Their purpose is for
  137.        you to know what files are of interest to you.
  138.        These characters are generally discarded from NEW so that duplicates
  139.        don't occur in front of the filename (this can overrided with the
  140.        /B command-line option, in which the special characters are written
  141.        from OLD first and then the special characters from NEW are written.
  142.        There is a limit to how many characters can be considered
  143.        'special' for each file name. Also note that, contrary to what is
  144.        indicated above, special characters are always considered
  145.        individually, not as a group. Special characters, if new ones
  146.        are specified, should be designed to be located easily (since their
  147.        purpose is to locate files of interest to you) and to not interfere
  148.        with file names (e.g., periods would be a bad choice).
  149.  
  150.        Status indicators
  151.  
  152.          When FTPDIF begins processing a new directory, a status message
  153.        will be displayed showing the name of the directory currently being
  154.        processed. Errors generated during processing should relate to
  155.        the directory currently being shown.
  156.  
  157.        Special Cases (technical details, these do not need to be
  158.           understood to successfully use the program)
  159.           - Any lines that are not of the form
  160.             "FILENAME<spaces>DESCRIPTION" are passed on to OUTPUT as-is.
  161.             This includes lines at the top of NEW and other lines in NEW
  162.             such as those that indicate a directory name.
  163.           - Directory mismatches:
  164.               - directories present in NEW but not present in OLD are
  165.                 written to OUTPUT as-is (no line processing is done)
  166.               - directories present in OLD but not present in NEW (an
  167.                 unlikely occurrence) are NOT written to OUTPUT. A single
  168.                 line is written that notifies you of the change:
  169.                 "**DIRECTORY NOT FOUND: dirname**", where dirname is the name
  170.                 of the directory that was apparently removed. The actual
  171.                 files from that directory are not written to OUTPUT.
  172.                 (You might want to check this before deleting OLD; note that
  173.                 such messages will appear as a group before the main portion
  174.                 of the file.)
  175.            - hyphen vs. underscore: any hyphens found in file-names will
  176.                be converted to underscores. Although this is done for
  177.                comparison purposes (at least one FTP site changed their
  178.                filenames in this fashion, so it was necessary to do this),
  179.                this does mean that listings where a name is supposed to have
  180.                a hyphen will not (because it was converted to an underscore).
  181.            - parsing: the number of significant characters is relatively
  182.                short (current implementation only recognizes 32 characters).
  183.                This means that directory names with full paths will not
  184.                be processed in their entirety. However, the characters that
  185.                are considered significant are at the end of the name string
  186.                (part of the path gets removed, not the name of the specific
  187.                directory). File names also have a length limitation, but it
  188.                is considerably longer (128 characters).
  189.                This should NOT affect the correctness of FTPDIF's output.
  190.  
  191.        Methods of detecting directories (more technical details)
  192.          - lines containing the string "DIRECTORY" (without the quotes,
  193.            case insensitive) are considered to be indicating directories
  194.            unless it appears that it is part of a description. (This latter
  195.            part is determined by also looking for a filename at the start
  196.            of the line). If a line does contain that string, the directory
  197.            name is assumed to be the word after it. (This method works for
  198.            FTP sites such as X2FTP and Simtel.)
  199.          - lines with a single word following by a colon (possibly with
  200.            whitespace in-between). The directory name is then the word that
  201.            started the line. (This method works for sites such as Garbo.)
  202.  
  203.        File versions
  204.          Files that have been replaced with a newer version, with even
  205.        a slight change in file name, will be interpreted as being
  206.        new files. Be aware of this fact when looking for files specified
  207.        as being new. This will hopefully be improved in a future version.
  208.        For now, you can verify if a version change was the cause by
  209.        looking for a 'NOT FOUND' message at the end of the directory
  210.        for the old version of that file.
  211.  
  212.   Known Bugs/Limitations
  213.   --------------------------
  214.  
  215.   - No detection of version changes (file replacements).
  216.   - FTPDIF does not recognize its own output. For example, filenames with
  217.     the string "**NEW**" in front will not be recognized as filenames.
  218.     Most likely the entire line will be treated as garbage and will be
  219.     ignored. To avoid difficulties with this bug, use an editor to search
  220.     and delete such strings before using a file output by FTPDIF as input
  221.     to FTPDIF later on. Correcting this bug will be a priority if any
  222.     more versions are developed.
  223.   - as mentioned above, hyphens are converted to underscores for
  224.     comparison purposes. The filename that is output does not necessarily
  225.     match the input because of this. (This bug is easy to fix, but makes
  226.     the source code more complex.)
  227.  
  228.   Note: this program requires about 200Kb of conventional memory;
  229.   anything less than that and the program will run slowly or won't even
  230.   execute. (But who doesn't have 200Kb of free memory?)
  231.  
  232.   Contact Information
  233.   -------------------
  234.     Please send bug reports, comments, or suggestions to the email address
  235.   listed below.
  236.  
  237.     Program author:
  238.        Tim Kannel
  239.            Computer Science junior, University of Minnesota - Twin Cities
  240.        email: kann0018@maroon.tc.umn.edu
  241.  
  242.   If nothing else, please send email saying that you downloaded the
  243.   program. I'm interested in knowing how many people are using it.
  244.     This program was tested on directory listings (index files) from
  245.   X2FTP (x2ftp.oulu.fi), a Simtel site (uiarchive.cso.uiuc.edu),
  246.   and Garbo (garbo.uwasa.fi). If this program does not work with listings
  247.   from these or other FTP sites, please contact the author; specify
  248.   the URL for the site and exactly what file was being used. It might
  249.   also be helpful to attach the older index to the email message.
  250.  
  251.   Future Releases
  252.   ---------------
  253.     If enough people use and like this program a second version will
  254.   be developed.
  255.   Features/Fixes to be included:
  256.     - sort directories
  257.     - sort files within each directory
  258.     - create a log file of changes made  (as a separate record from
  259.         the index itself)
  260.     - fixes to the problems listed above
  261.  
  262.     The sort options aren't likely to be useful, since FTP sites generally
  263.   have directories and files listed in an orderly fashion anyway, but this
  264.   feature would be simple to implement (it was part of the design for
  265.   this version, just not implemented).
  266.  
  267.   Other Information
  268.   -----------------
  269.     C++ source code is available upon request (it may already be included
  270.   with the .ZIP archive). Send email to address above.
  271.   Tested with Borland C++ 3.1 and Borland C++ 5.0. Releases compiled with
  272.   Borland 3.1 (version 5.0 produced a much larger executable).
  273.  
  274.   Other Programs/Libraries by Tim Kannel
  275.     Note: none of these have been released publicly, but may be available
  276.       from the author; see the information below.
  277.     - TCAP - TSR program to capture text output; works under DOS
  278.         (screws up majorly under Win95). Captures output by intercepting
  279.         the video BIOS character and string output functions.
  280.     - CRLF - program to convert Unix linefeeds to DOS
  281.         carriage-return/linefeeds (There are other programs available to
  282.         do this, so this one wasn't worth releasing).
  283.     - IVIEW - image viewer - supports GIF,PCX,Windows BMP,Targa,
  284.         PBM/PGM/PPM, and PNG (for those of you who haven't heard, PNG is
  285.         a new format designed to replace GIF).
  286.         I'd release this program as shareware but if I did that I'd have to
  287.         remove the GIF support (I don't care to get the licence from Unisys),
  288.         and the program is slow (probably because it uses a lot of EMS memory.
  289.         A protected mode port of this program is possible in the future, which
  290.         should make it faster). Supports scaling images and scrolling
  291.         (except both at once is buggy at the moment, and it slows to a crawl).
  292.         Command-line based, supports wildcards and multiple
  293.         file specifications. Includes a slide show feature.
  294.     - VESA SVGA library - only supports 256-color modes. (I tried added
  295.       direct-color support, but my video system doesn't support true-color
  296.       and it hi-color support is buggy. That makes it rather hard to test
  297.       the code.). IVIEW uses the 256-color version of the library.
  298.     - C++ EMS-memory library (used by IVIEW). Provides a C++ class to
  299.       encapsulate EMS memory operations.
  300.     - buffered file I/O - C++ class to buffer file reads. Currently does
  301.       not support writes (most programs do more file reading than writing
  302.       anyway); read buffering can be easily disabled (in which
  303.       case file I/O drops through to standard library functions, normally it
  304.       calls DOS through inline assembly). Improves program performance
  305.       tremendously, but using C++ streams (which are buffered) would be
  306.       a better choice for most applications. (This library could be easily
  307.       converted to C if anyone wants to avoid C++. For that matter, it
  308.       could be ported to straight assembly without much trouble.)
  309.       IVIEW also uses this class (one of the fast parts of that program).
  310.     - planned: bit-stream C++ class to read/write files as bit streams,
  311.       instead of whole bytes. (This is easy to do as simple functions, but
  312.       encapsulating it as an object (i.e. class instance) would be more
  313.       OOP-like). The class would inherit from the standard I/O classes.
  314.       Actually there would be two or three classes: ifbitstream, ofbitstream,
  315.       and possibly fbitstream (based on ifstream,ofstream, and fstream).
  316.       The number of bits to read/write would be variable with each call
  317.       (with a default of 8 to easily support normal byte operations).
  318.  
  319.   If you're interested in any of these, send email; but no guarantees.
  320.   (CRLF I'll definitely give you (with C++ source), TCAP probably (but not
  321.   with the .ASM source), IVIEW probably (but will only include C++ source
  322.   if you want to help develop it - adding file support is quite easy),
  323.   the SVGA library isn't worth releasing unless you want something small
  324.   with only 256-color support).
  325.  
  326. END READ.ME  (anyone actually read all of this?)
  327.